package CommandMode.version3;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * Copyright (C) 2018 北京金日恒升科技有限公司
 * 版权所有。
 * 文件名：Waiter
 * 功能描述：
 * 创建标识：闫传强
 * 2018/11/29 16:34
 **/
//服务员
public class Waiter {

    //增加存放具体命令的容器
    private List<Command> orders=new ArrayList<Command>();

    //设置订单
    public void SetOrder(Command command){
        //在客户提出请求时，对没货的烧烤进行回绝
        if(command.toString().equals("烤鸡翅")){
            System.out.println("服务员：“鸡翅没有了，请点别的烧烤”");
        }else{
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            } finally {
            orders.add(command);
            //记录客户所点的烧烤的日志，以备算账收钱
            System.out.println("增加订单："+command.toString()+"  时间："+new Date().toString());
            }
        }
    }
    //取消订单
    public void CancelOrder(Command command){
        orders.remove(command);
        System.out.println("取消订单："+command.toString()+"  时间："+new Date().toString());
    }

    //通知全部执行
    public void Notify(){
        for (Command cmd: orders) {
            cmd.ExcuteCommand();
        }
    }

}
